.IIF NDF S$$YDF , .NLIST .TITLE RSXMC .IDENT /11.30/ ; ; Copyright (c) 1995 by Mentec, Inc., U.S.A. ; All rights reserved ; ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED ; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE ; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS ; SOFTWARE OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR ; OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND ; OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED. ; ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ; ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL. ; ; Version: 11.30 ; Date: 08-AUG-86 10:19:15 ; ; ; The following symbols represent options for which the conditional ; code has been removed from the Executive. The symbols are defined ; here only for the use of privileged tasks, common utilities, and ; user written tasks. ; A$$CHK=0 ; Address checking A$$CPS=0 ; ACP support A$$NSI=0 ; ANSI magtape support A$$PRI=0 ; Alter Priority directive (ALTP$) A$$TRP=0 ; AST support C$$CKP=0 ; Checkpointing support D$$ISK=0 ; Nonresident task support D$$SHF=0 ; Automatic dynamic memory compaction D$$WCK=0 ; Writecheck support D$$YNC=0 ; Dynamic checkpoint allocation D$$YNM=0 ; Dynamic memory allocation support ;E$$PER=0 ; Log parity error traps F$$LVL=1 ; File structure level support G$$DVI=0 ; Get device info directive supported (GDVI$) G$$TPP=0 ; Get Partition Parameters directive (GPRT$) G$$TTK=0 ; Get Task Parameters directive (GTSK$) I$$RAR=0 ; Install, request, and remove on exit I$$RDN=0 ; I/O rundown L$$ASG=0 ; Logical device assignment support L$$DRV=0 ; Loadable driver support L$$LDR=0 ; Task loader as a separate task M$$FCS=0 ; FCS/File system support M$$MGE=0 ; Memory management support M$$MUP=0 ; Multi-user protection - requires T$$BTW,T$$RNE,T$$RST, ; ; and P$$OFF P$$GMX=0 ; Get mapping context - requires P$$LAS P$$LAS=0 ; Program logical address extensions P$$OFF=0 ; Parent/Offspring tasking support P$$OOL=0 ; Secondary pool P$$P45=0 ; Rotating pattern in data lights P$$SRF=0 ; Send/Receive by reference - requires P$$LAS R$$DSP=0 ; Executive level dispatching R$$EXV=0 ; Extend Executive to 20K R$$SND=0 ; Receive/Send directives T$$KMG=0 ; Task termination/device not ready messages ; ; The following symbols are statically defined for all RSX-11M-PLUS systems. ; They should not be changed. ; C$$INT=0 ; Connect to interrupt C$$PCR=0 ; Checkpoint Common Region directive (CPCR$) D$$IAG=0 ; User mode diagnostics ;E$$DVC=0 ; Device error logging support ;E$$LOG=0 ; Error logging support ;E$$NSI=0 ; Nonsense interrupt error logging E$$XPR=0 ; Extend Task directive (EXTK$) G$$GEF=0 ; Group global event flag support H$$FME=16. ; Number of fast map extension entries H$$FMS=4 ; Size of a fast map extension entry H$$FMX=2 ; Size of a fast map extension in 32-word blocks L$$NAM=0 ; Named directory support in DCL M$$CRB=84. ; Number of characters in an MCR buffer M$$CRX=0 ; External MCR functions M$$OVR=0 ; Overlayed MCR M$$XLN=256. ; Total length of MCR lines N$$DIR=0 ; Named directory support ;O$$LAP=0 ; Overlapped device operation support P$$MAX=256. ; Maximum size of send/receive packets P$$MON=0 ; SPM-11 support ;P$$RFL=0 ; Power fail recovery support R$$CON=0 ; Reconfiguration support R$$EIS=0 ; EIS instructions - required for DECNET support R$$FEA=0 ; Test Feature Mask directive (FEAT$) R$$GIN=0 ; General Information directive (GIN$) ;R$$LKL=1 ; RMS record locking R$$MPL=0 ; RSX-11M-PLUS system R$$11M=0 ; RSX-11M system (as opposed to 11D or IAS) ;S$$ECC=0 ; Shared Exec ECC support S$$MAP=0 ; SMAP$ and MVTS$ directives ;S$$OPT=0 ; Disk seek optimization U$$UMD=0 ; User mode diagnostics support U$$UMR=0 ; UMR support (as separate from M$$EXT) ;A$$LOG=0 ;A$$SEC=0 ; ; The following symbols are for terminal driver options that are always ; included in RSX-11M-PLUS systems. ; T$$BTW=0 ; Breakthrough write - required for M$$MUP T$$CCA=0 ; Unsolicited input AST T$$CON=0 ; Serial console support T$$CTR=0 ; Control-R T$$CUP=0 ; Cursor positioning T$$EIO=0 ; Extended I/O T$$ESC=0 ; Escape sequences T$$GMC=0 ; Get terminal characteristics T$$GTS=0 ; Get terminal driver support T$$LTH=0 ; LAT support T$$LWC=0 ; Settable case conversion (lowercase) T$$OVL=0 ; Overlaid driver (uses TTEXT) T$$RED=0 ; Hard read error detection T$$RNE=0 ; Read with no echo - required for M$$MUP T$$RPR=0 ; Read after prompt T$$RST=0 ; Read with special terminator - required for M$$MUP T$$RUB=0 ; CRT rubout T$$SMC=0 ; Set terminal characteristics T$$TSA=0 ; Network Command terminal support T$$USP=0 ; User-written ports ; ; The following symbols define the first free UMR for use by user drivers. ; If the system includes DH11 or DHU11 terminal controllers, these symbols are ; redefined later in this file. ; N$$UMR=5*4. ; Number of statically allocated UMRs U$$MRN=170224 ; Address of first free UMR U$$MHI=0 ; High 2 bits of 18 bit UNIBUS address in bits 4 and 5 U$$MLO=120000 ; Low 16 bits of 18 bit UNIBUS address ; ; The following symbols are for options which are always included by SYSGEN. ; A knowledgeable user could alter these symbols at his own risk to tailor ; his system. ; C$$ORE=512. ; Size of dynamic storage region ;E$$ICM=0 ; ERRLOG: inhibit console messages ;E$$MOU=0 ; ERRLOG: log mounts and dismounts ;E$$SEF=0 ; ERRLOG: use special file formats F$$NIM=0 ; Deleted disk image of fixed task support G$$TSS=0 ; Get Sense Switches directive (GSSW$) N$$MOV=33. ; Size of BLXIO move table P$$CTL=0 ; Pool monitoring task support Q$$OPT=5 ; Number of pre-allocate I/O packets R$$IIC=0 ; Internal I/O completion - required for T$$TSA, D$$CHE S$$HFC=30. ; Minimum time interval between shuffler requests S$$WRG=0 ; Console switch register present S$$WST=0 ; Switch State directive (SWST$) ;S2.NRD=20000 ; Enable new power recovery for DM/DB/DR ; ; The following symbols are the initial values for system tuning parameters ; that are reset in SYSVMR. ; R$$NDC=6 ; Round robin sched: Clock ticks per scheduling interval R$$NDL=1 ; Round robin sched: Lowest priority class to consider R$$NDH=150. ; Round robin sched: Highest priority class to consider S$$WPC=30. ; Clock ticks per swapping interval S$$WPR=5 ; Swapping priority P$$HIL=1600. ; PMT: High pool limit P$$LOL=600. ; PMT: Low pool limit P$$FRS=200. ; PMT: Lowest permissible size of largest pool fragment P$$BPR=51. ; PMT: Pool base priority task control ; ; The following symbols are those that are generated by the "Choosing ; Executive options" questions answered by the user. ; ; X$$SEC=0 ; Extensible secondary pool support R$$TPR="73 ; Processor type (for NETGEN) S$$EXC=0 ; Full-functionality Exec K$$DAS=0 ; Kernel data space support A$$CKP=0 ; Alternate checkpoint support I$$CBP=0 ; Alternate ICB pool support U$$DAS=0 ; User data space support D$$PAR=0 ; Directive partitions X$$HDR=0 ; External header support L$$GCL=0 ; Logical name support S$$LIB=0 ; Supervisor-mode library support F$$MAP=0 ; Fast map facility I$$CSZ=80. ; ICB pool size (in words) M$$NET=1400.+31. ; DECnet support - requires S$$WST S$$NM1="CP ; System name S$$NM2="R ; S$$NM3=" ; ;S$$HDW=0 ; Shadow recording ;D$$CHE=0 ; Disk data caching - requires R$$IIC A$$CNT=0 ; Accounting - requires P$$OOL ;Q$$MGR=0 ; Queue Manager included at SYSGEN A$$CLI=16. ; Alternate CLI support C$$CTC=0 ; CTRL/C abort support P$$WND=0 ; Secondary pool FCP - requires P$$OOL F$$DVN=0 ; Decimal version numbers V$$TRM=0 ; Virtual terminal support V$$TLD=120. ; Default VT: unit buffer size V$$TLM=184. ; Maximum VT: unit buffer size T$$ACD=0 ; Ancillary control driver support in TTDRV - requires T$$EIO T$$UTO=30. ; Time-out on unsolicited input T$$COM=0 ; Separate terminal buffer pool ;X$$DBT=0 ; Executive debugging tool R$$DER=0 ; CORAL deallocation error checking ;C$$RSH=177564 ; Crash notification device CSR ;C$$CDA=2 ; Crash dumps on DK C$$RUN=0 ; Logical unit number of crash device S$$YSZ=256.*32. ; Size of phys. memory in 32W blocks M$$EXT=0 ; Extended memory support P$$D70=0 ; 11/70 parity support F$$LPP=0 ; Floating point processor support H$$RTZ=60. ; Line frequency K$$CSR=177546 ; Line clock CSR address K$$CNT=177546 ; Count register address K$$TPS=60. ; Ticks per second K$$LDC=1 ; Load count value K$$IEN=115 ; Interrupt enable value ; ; The following symbols are defined for all RSX-11M-PLUS systems except ; pregennerated non I/D-space systems. ; P$$RTY=0 ; Parity memory support ; ; The following symbols are those that are generated by the "Choosing ; Peripheral Configuration" questions answered by the user. ; R$$UDA=1. ; MSCP-class disk controllers LD$DU=0 ; Loadable DUDRV DU$C0=4 ; DUA command rings DU$R0=4 ; DUA response rings ;LD$CO=0 ; Loadable CODRV D$$L11=1 ; DL11/DLV11 line interfaces LD$TT=0 ; Loadable TTDRV N$$LDV=1 ; Null device LD$NL=0 ; Loadable NLDRV LD$VT=0 ; Loadable VTDRV LD$RD=0 ; Loadable RDDRV LD$XX=0 ; Loadable XXDRV LD$KX=0 ; Loadable KXDRV V$$CTR=500 ; Address of highest vector + 4 ; ; This macro provides the linkage between the last CTB in SYSTB and the ; first CTB in the user-supplied resident data bases. Invoke this macro ; in the first resident data base's CTB just before the L.LNK field. ; .MACRO CTB $CTB1:: ; First user-supplied CTB .ENDM ; ; *************** START OF CPR SPECIFIC CONDITIONALS ********** ; ; THIS SECTION CONTAINS CONDITIONAL SYMBOLS DEFINED FOR THE CPR ; SYSTEM ONLY. ; K$$TP0=175000 ; TPR0 C$$RSH=K$$TP0 ; CRASH NOTIFICATION CSR (NOT USED) C$$CDA=20 ; CRASH ON KXJ IS SUPPORTED C$$RMT=0 ; REMOTE HOST SUPPORT C$$KXJ=0 ; KXJ PROCESSOR SUPPORT C$$XDJ=0 ; XDT ON KXJ IS SUPPORTED C$$DFB=0 ; DEFERRED BINDING C$$RTB=0 ; RUN TIME BINDING C$$ODB=0 ; CANNOT OVERRIDE DEFERRED BINDING C$$RTK=0 ; REMOTE TASK SERVICES C$$NSY=0 ; NO LOCAL SYSTEM DISK C$$NCO=0 ; NO LOCAL CONSOLE C$$RDR=0 ; REMOTE DIRECTORY STORAGE C$$RLG=0 ; REMOTE LOGICALS C$$SC1=0 ; ALTERNATE SECONDARY POOL ROUTINES C$$LDR=0 ; REMOTE LOADER/OVERLAY R$$CPR=0 ; MAKE SYSTEM NAME VAX-CPR/RSX G$$DVI=0 ; SUPPORT FOR THE GDVI DIRECTIVE ; ; *************** END OF CPR SPECIFIC CONDITIONALS ************ ; ; ; ; EXEC MACROS ; ; ; ASSUME MACRO FOR CHECKING SYMBOL DEPENDENCIES ; .MACRO ASSUME A,B=0 .IIF NE - .ERROR ;EXPRESSIONS NOT EQUAL .ENDM ; ; CALL SUBROUTINE ; .MACRO CALL SUBR ARG .IF IDN <$INTSV>, JSR R5,$INTSV .WORD ^C&PR7 .IFF .IF IDN <$SAVNR>, JSR R5,$SAVNR .IFF .IF IDN <$SWSTK>, EMT 376 .WORD ARG .IFF JSR PC,SUBR .ENDC .ENDC .ENDC .ENDM ; ; CALL AND RETURN FROM SUBROUTINE ; .MACRO CALLR SUBR JMP SUBR .ENDM ; ; CRASH SYSTEM ; .MACRO CRASH IOT .ENDM ; ; SUPERVISOR MODE SUPPORT MACROS ; .MACRO MFPD$ X .IF DF S$$LIB!U$$DAS MFPD X .IFF MFPI X .ENDC .ENDM .MACRO MTPD$ X .IF DF S$$LIB!U$$DAS MTPD X .IFF MTPI X .ENDC .ENDM ; ; DIRECTIVE REGISTER SAVE AND SET PRIORITY ; .MACRO DIRSV$ JSR R5,$DIRSV .ENDM ; ; SET DIRECTIVE STATUS ; .MACRO DRSTS VALUE TRAP VALUE .ENDM ; ; INTERRUPT SAVE GENERATION MACRO FOR ERROR LOGGING DEVICES ; .MACRO INTSE$ DEV,PRI,NCTRLR,PSWSV,UCBSV $'DEV'INT:: .IF NDF LD$'DEV JSR R5,$INTSE .WORD ^C&PR7 .ENDC GTUCB$ UCBSV,NCTRLR,DEV MOV U.SCB(R5),R4 ;;;GET OWNERS SCB ADDRESS .IF DF VC$'DEV' BIC #S2.ACT,S.VST2(R4) ;;;INDICATE I/O IS FINISHED RST21=.-2 MOV S.VKRB(R4),R4 ;;;RETRIEVE KRB ADDRESS RKRB1=.-2 .IFF BIC #S2.ACT,S.ST2(R4) ;;;INDICATE I/O IS FINISHED MOV S.KRB(R4),R4 ;;;RETRIEVE KRB ADDRESS .ENDC MOVB K.CON(R4),R4 ;;;RETRIEVE CONTROLLER INDEX .ENDM ; ; INTERRUPT SAVE GENERATION FOR NON-ERROR LOGGING DEVICES ; .MACRO INTSV$ DEV,PRI,NCTRLR,PSWSV,UCBSV .IF NDF LD$'DEV JSR R5,$INTSV .WORD ^C&PR7 .ENDC GTUCB$ UCBSV,NCTRLR,DEV .ENDM ; ; GENERATE CODE TO LOAD UCB ADDRESS INTO R5 -- CALLED ; ONLY BY INTSE$, INTSV$, AND TTSET$ (IN TTDRV). ; .MACRO GTUCB$ UCBSV,NCTRLR,DEV .IF NB .IF GT NCTRLR-1 MOV UCBSV(R4),R5 .IFF MOV UCBSV,R5 .ENDC .IFF .IF DF LD$'DEV MOV 'DEV'CTB,R5 ;;;GET ADDRESS OF KRB TABLE IN CTB ADD R4,R5 ;;;ADD CONTROLLER INDEX MOV (R5),R5 ;;;GET KRB ADDRESS FROM CTB .IFF MOV $'DEV'CTB(R4),R5 ;;;GET KRB ADDRESS FROM CTB .ENDC MOV K.OWN(R5),R5 ;;;RETRIEVE OWNERS UCB ADDRESS .ENDC .ENDM ; ; GET I/O PACKET MACRO -- AUTOMATE UNIT DETERMINATION ; .MACRO GTPKT$ DEV,NCTRLR,ADDR,UCBSV,SUC .IF DF VC$'DEV' CALL @GTPKT .IFF CALL $GTPKT .ENDC .IF B BCC 65535$ RETURN 65535$: .IFF BCS ADDR .ENDC .IF B $$$=0 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN ,
$$$=1 .IF B .IF EQ $$$ MOV R5,S.OWN(R4) .ENDC .ENDC .IFF .IF GT NCTRLR-1 MOV R5,UCBSV(R3) .IFF MOV R5,UCBSV .ENDC .ENDC .ENDM ; ; GENERATE THE DEVICE DISPATCH TABLE -- DDT ; .MACRO DDT$ DEV,NCTRLR,INY,INX,UCBSV,NEW,BUF,OPT .IF NB .WORD 'DEV'CHK .ENDC .IF NB .WORD 'DEV'DEA .IFF .IF NB .WORD 1 ;ENTRY SHOULD NOT BE USED - CRASH .ENDC .ENDC .ENABL LSB .IF B $'DEV'TBL::.WORD DEV'INI .IFF $'DEV'TBL::.WORD DEV'INX .ENDC .WORD DEV'CAN .WORD DEV'OUT .IF B .WORD 65533$ .WORD 0 .WORD 65531$ .IFF .WORD DEV'PWF .WORD DEV'KRB .WORD DEV'UCB .ENDC .IF DIF , .ASCII /DEV/ .IF B .WORD $'DEV'INT .IFF .IRP X, .WORD $'DEV''X .ENDM .ENDC .WORD 0 .IF DF LD$'DEV 'DEV'CTB: .WORD 0 .IFF $$$=0 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IIF IDN , $$$=1 .IF EQ $$$ 'DEV'CTB: .WORD $'DEV'CTB .IFF 'DEV'CTB: .WORD $RHCTB .ENDC .ENDC .ENDC .IF DF LD$'DEV $'DEV'TBE::.WORD 0 .ENDC .IF NB UCBSV: .BLKW NCTRLR .ENDC .IF B 65531$: BITB #UC.PWF,U.CTL(R5) BEQ 65532$ 65533$: BCS 65532$ JMP DEV'PWF 65532$: RETURN .ENDC .DSABL LSB .ENDM ; ; PROCESSOR STATUS READ/WRITE ; .MACRO MFPS DST MOVB @#PS,DST .ENDM .MACRO MTPS SRC .IF IDN <#0>, CLRB @#PS .IFF MOVB SRC,@#PS .ENDC .ENDM ; ; MULTIPROCESSOR LOCK AND UNLOCK MACROS ; .MACRO LOCK$ ADDR,TYPE,?LAB1,?LAB2 $$$=0 .IF IDN , $$$=1 .IF DF M$$PRO MOV #'ADDR,-(SP) CALL $MLOCK .ENDC .ENDC .IF IDN , $$$=1 .IF DF M$$PRO LAB1: ASRB ADDR BCC LAB1 CACHE$ BYPASS .IF DF L$$DBG .NTYPE TMP,ADDR .IF EQ TMP-67 TSTB ADDR+1 .IFF .IF EQ TMP&70-10 TSTB 1'ADDR .IFF .IF EQ TMP&70-60 TSTB 1+ADDR .IFF .ERROR ;INCORRECT ADDRESSING MODE FOR LOCK BLOCK .ENDC .ENDC .ENDC BMI LAB2 CRASH LAB2: .IF EQ TMP-67 MOVB $PROCN,ADDR+1 .IFF .IF EQ TMP&70-10 MOVB $PROCN,1'ADDR .IFF .IF EQ TMP&70-60 MOVB $PROCN,1+ADDR .IFF .ERROR ;INCORRECT ADDRESSING MODE IN LOCK$ .ENDC .ENDC .ENDC .ENDC .ENDC .ENDC .IIF EQ $$$ .ERROR ;NOT SPIN OR WAIT IN LOCK$ MACRO .ENDM .MACRO ULOCK$ ADDR,TYPE,?LAB .IF DF M$$PRO .IF IDN , MOV #'ADDR,-(SP) CALL $MULCK .ENDC .IF IDN , .IF DF L$$DBG .NTYPE TMP,ADDR .IF EQ TMP-67 CMPB $PROCN,ADDR+1 .IFF .IF EQ TMP&70-10 CMPB $PROCN,1'ADDR .IFF .IF EQ TMP&70-60 CMPB $PROCN,1+ADDR .IFF .ERROR ;INCORRECT ADDRESSING MODE IN ULOCK$ .ENDC .ENDC .ENDC BEQ LAB CRASH LAB: .IF EQ TMP-67 COMB ADDR+1 .IFF .IF EQ TMP&70-10 COMB 1'ADDR .IFF .IF EQ TMP&70-60 COMB 1+ADDR .IFF .ERROR ;INCORRECT ADDRESSING MODE IN ULOCK$ .ENDC .ENDC .ENDC .ENDC CACHE$ RESTOR MOVB #1,ADDR .ENDC .ENDC .ENDM .MACRO LCKDF$ TYPE .IF IDN , .BYTE 1 .BYTE -1 .ENDC .IF IDN , .BYTE 1 .BYTE -1 .BYTE 1 .BYTE -1 .WORD 0 .ENDC .ENDM LK.SPN=2 ;LENGTH OF SPIN LOCK BLOCK LK.WAT=10 ;LENGTH OF WAIT LOCK BLOCK ; ; DEFINITIONS FOR CACHE OPERATION ; .IF DF P$$D70 & M$$PRO FLUSH=1*400 ;CACHE FLUSH OPERATION BYPASS=2*400 ;CACHE BYPASS OPERATION .ENDC ; ; MACRO FOR CACHE OPERATION ; .MACRO CACHE$ ARG,ARG2 .IF DF P$$D70 & M$$PRO .IF IDN , BIC #BYPASS,@$MPCSR+6 .ENDC .IF IDN , BIS #BYPASS,@$MPCSR+6 .ENDC .IF IDN , BIS #FLUSH,@$MPCSR+6 .ENDC .IF IDN , MOV @$MPCSR+6,-(SP) BIC #^C,(SP) .IF DIF , BIC (SP),@$MPCSR+6 .IFF BIS #BYPASS,@$MPCSR+6 .ENDC .ENDC .IF IDN , BIC #BYPASS,@$MPCSR+6 BIS (SP)+,@$MPCSR+6 .ENDC .ENDC .ENDM ; ; SAVE NONVOLATILE REGISTERS ; .MACRO SAVNR JSR R5,$SAVNR .ENDM ; ; STATE SWITCHING MACRO ; .MACRO SWSTK$ ARG CALL $SWSTK,ARG .ENDM ; ; TALLY A FIELD IN SYSTEM ACCOUNT BLOCK ; .MACRO TALLY$ OFF,CND,PROC .IF DF X$$ACC&A$$CNT&CND MOV R0,-(SP) MOV #140002+OFF,R0 .IF IDN , CALL $ACINP .IFF ; IDN , CALL $ACINC .ENDC ; IDN , .ENDC ; DF X$$ACC&A$$CNT&CND .ENDM ; ; CPR SEND MACRO -- SEND A PACKET TO CPRAME OR CPRSYS ; .MACRO CPSEN$ OPCODE,BUF,LEN,SHRBAS .MCALL MOV$ MOV$ SHRBAS MOV$ LEN MOV$ BUF MOV$ OPCODE .IF DF VC$CPR CALL @CPSEN .IFF CALL $CPSEN .ENDC ;VC$CPR .ENDM ; ; BLOCK MOVE INSTRUCTION MACRO (TEMPORARY) ; .MACRO MOVR$ SRC,DST,CNT .NTYPE $$$S,SRC .NTYPE $$$D,DST .NTYPE $$$C,CNT .IF EQ,<<$$$S!$$$D!$$$C>&70> $$$S = $$$S*^o100 $$$D = $$$D*^o10 .LIST MEB .WORD ^o075000+$$$S+$$$D+$$$C .NLIST MEB .IFF ;EQ .ERROR ; Invalid addressing mode used in MOVR$ .ENDC ;EQ,<<$$$S!$$$D!$$$C>&70> .ENDM ;MOVR$ .IIF NDF S$$YDF , .LIST